<?php
namespace Kuoqi\Api\Weixin\Mp;
use Kuoqi\Api\Weixin\Tools;
use Kuoqi\Api\Weixin\Config;

/**
 * 专注于微信授权的模块
 * v0.0.0
 * Class Jssdk
 * @package Kuoqi\Api\Weixin\Mp
 */
class Jssdk{

    public $url = null;//url
    public $noncestr = '123456';
    public $timestamp = '';

    public function __construct(){
        $this->timestamp = time();
    }

    public function setUrl($url){
        $this->url = urldecode($url);
    }

    //获取ticket的链接信息,获取授权信息，授权信息需要加上签名验签的喔
    //签名生成规则如下：参与签名的字段包括noncestr（随机字符串）, 有效的jsapi_ticket, timestamp（时间戳）, url（当前网页的URL，不包含#及其后面部分） 。对所有待签名参数按照字段名的ASCII 码从小到大排序（字典序）后，使用URL键值对的格式（即key1=value1&key2=value2…）拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密，字段名和字段值都采用原始值，不进行URL 转义。
    public function authorizate(){
        $config = array(
            'jsapi_ticket'=>Config::getTicket(),
            'noncestr'=>$this->noncestr,
            'timestamp'=>$this->timestamp,
            'url'=>$this->url,
        );
        ksort($config);
        $str = array();
        foreach($config as $k=>$v){
            $arr[] = "{$k}={$v}";
        }
        $str = implode('&',$arr);
        $config['sign'] = sha1($str);
        $config['appid'] = Config::$mp_appid;

        unset($config['jsapi_ticket'],$config['url']);
        ksort($config);
        return $config;
    }
}